昨天,我們成功為 AI 助理裝上了「耳朵」(Webhook),讓它能聽懂我們從外部下達的研究指令。
但現在的它,就像一個博學多聞、卻被關在圖書館裡的老教授。你問他陳年舊事,他能侃侃而談;但你問他「昨天發生了什麼?」,他只能兩手一攤,告訴你「我的知識只到 2023 年」。
今天,我們要為 AI 助理裝上「眼睛和手腳」,賦予它使用「工具」的能力。
它的第一個工具,就是「網路搜尋」。
我們將活用之前學到的 HTTP Request 節點,在 AI 思考前,先幫它上網 Google 一下,把最新的資料搜集回來,再交給它總結。
賦予 AI 使用「工具 (Tools)」的核心概念。
HTTP Request 節點的首次實戰,串接真實世界的 API。
進階提示工程:如何設計一個「開卷考試」的題目,讓 AI 根據我們給的資料來回答。
第一步:取得「網路搜尋」這個工具 (Serper API)
要讓 n8n 上網搜尋,我們需要一個專門的「搜尋引擎服務」。這裡我們選用 Serper.dev,它非常簡單、快速,而且提供免費的額度,很適合學習。
前往 serper.dev:註冊一個免費帳號。
取得 API Key:登入後,你就能在儀表板上看到你的 API Key。複製它,這就是 n8n 使用搜尋工具的「通行證」。
在 n8n 建立憑證:
第二步:在工作流中,使用這個工具
讓我們回到昨天的工作流 (Webhook -> Set -> AI Agent)。
我們要在中間插入 HTTP Request 這個步驟。
在 Webhook 和 Set 節點之間,新增一個 HTTP Request 節點。
設定搜尋指令:
Authentication: Header Auth,並選擇你剛建立的 Serper API 憑證。
Method: POST
Body Content Type: JSON
Body Parameters: 點擊 Add Parameter。
Name: q (這是 Serper 規定的「查詢」欄位名)
Value: 填入我們從 Webhook 收到的研究主題:{{ $trigger.query.topic }}
測試:執行這一步,你會在 Output 看到 Serper 回傳的 Google 搜尋結果,通常會包含標題 (title)、連結 (link) 和摘要 (snippet)。
第三步:教 AI 如何「開卷考試」
這是今天最關鍵、也是最有趣的一步。我們拿到了一堆搜尋結果,要怎麼交給 AI,並確保它會「參考」這些新資料,而不是憑自己的舊記憶亂答呢?
答案是:我們要改變對 AI 下指令的方式。
想像一下,這是一場「開卷考試」:
考題 = 我們想研究的主題。
發下去的課本 = 剛剛搜集到的網路資料。
考試規則 = 我們在 Prompt (提示) 中,明確地告訴 AI:「請你只根據我發給你的這本課本來回答,不准自己亂編!」
操作步驟:
{{ $items.map(item => 標題:${item.json.title}\n摘要:${item.json.snippet}
).join('\n---\n') }}
這段程式碼的作用很單純:把一堆搜尋結果,整理成一大段乾淨、可閱讀的文字。
設計考題 (AI Agent 節點):
點開 AI Agent 節點,修改 Messages 中的 Content (提示)。
修改後的 Content (Expression):
`你是一位頂尖的研究助理。請你「只根據」我下方提供的「參考資料」,為「研究主題」寫一份專業、簡潔的重點摘要。禁止使用你自己的舊知識,禁止編造參考資料中沒有的內容。
【參考資料】
{{ $json.reference_material }}
請開始你的摘要:`
我們把 Prompt 設計成了一張分區清楚的「考卷」,有角色扮演、有嚴格的考試規則、有考題、也有發下去的課本。AI 看到這張考卷,就會非常乖巧地按照我們的規則,從最新的資料中,為我們生成答案。
今天過後,你的 AI 助理不再是只能「閉門造車」的書呆子,而是成了一個能「實時調查」的情報員。
我們的 AI Agent 現在能聽指令、會上網、會思考。但它有個缺點:它是個「金魚腦」,每次執行完任務就忘得一乾二淨。
明天,我們要為它建立「長期記憶」,教會它如何將研究成果,自動記錄到我們的知識庫中。